{"version":3,"file":"static/chunks/pages/[locale]/collections/[slug]-301a5d7efd67de70.js","mappings":"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","sources":["webpack://_N_E/?b836","webpack://_N_E/./hooks/useBreadcrumb.tsx","webpack://_N_E/./libs/contentful/ComponentMapping.ts","webpack://_N_E/./libs/contentful/components/CmsPage.tsx","webpack://_N_E/./components/products-listing/enums.ts","webpack://_N_E/./components/products-listing/context/productsFilterReducer.tsx","webpack://_N_E/./components/products-listing/context/ProductsFilterContext.tsx","webpack://_N_E/./components/products-listing/hooks.ts","webpack://_N_E/./components/products-listing/stickyFilters/PricingFilter.tsx","webpack://_N_E/./components/products-listing/stickyFilters/StickyFacetsMenu.tsx","webpack://_N_E/./components/products-listing/stickyFilters/StickyToolbar.tsx","webpack://_N_E/./components/products-listing/ProductsListingLayout.tsx","webpack://_N_E/./pages/[locale]/collections/[slug].tsx","webpack://_N_E/./components/products-listing/ProductsListing.module.scss","webpack://_N_E/./components/products-listing/stickyFilters/StickyFacetsMenu.module.scss","webpack://_N_E/./components/products-listing/stickyFilters/StickyToolbar.module.scss"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/[locale]/collections/[slug]\",\n function () {\n return require(\"private-next-pages/[locale]/collections/[slug].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/[locale]/collections/[slug]\"])\n });\n }\n ","import { useEffect } from \"react\";\nimport { BreadcrumbProps } from \"@Types/Breadcrumbs\";\nimport {\n setHomeSlug,\n setCollectionSlug,\n setCurrentSlug,\n} from \"@wff/store/breadcrumbsSlice\";\nimport { useAppDispatch } from \"@wff/store/hooks\";\n\nexport const useBreadcrumb = (props: BreadcrumbProps) => {\n // homeSlug: {title: \"title\", link:\"/\"} - (Set automatically in Contentful pages) - The First part of the slug, usually the Root.\n // collectionSlug: {title: \"title\", link:\"/\"} - (Needs to be set where the link is before user redirect) - The slug for the navigation category or product category (The collection where the link the user comes from is).\n // currentSlug: {title: \"title\", link:\"/\"} - (Needs to be set in the actual page) - The slug for the actual page where user is (The page the user is right now).\n\n const { homeSlug, collectionSlug, currentSlug } = props;\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (homeSlug) dispatch(setHomeSlug(homeSlug));\n if (collectionSlug) dispatch(setCollectionSlug(collectionSlug));\n if (currentSlug) dispatch(setCurrentSlug(currentSlug));\n }, [homeSlug, collectionSlug, currentSlug, dispatch]);\n};\n","import dynamic from \"next/dynamic\";\n\nexport type componentMappingTypes = {\n [Key in string]: Function;\n};\n\n/**\n * Map all the cms components here to dynamically display content from cms\n * In the JSON key must match with contentType.id from contentful cms\n */\nconst componentMapping: componentMappingTypes = {\n TextEditor: dynamic(\n () => import(\"@Libs/contentful/components/cms-text-editor/CmsTextEditor\")\n ),\n Banner: dynamic(\n () => import(\"@Components/contentful-components/banner/Banner\")\n ),\n HomePageHeroSlider: dynamic(\n () =>\n import(\n \"@Components/contentful-components/heroSlider/custom/HomePageHeroSlider\"\n )\n ),\n HeroSlider: dynamic(\n () => import(\"@Components/contentful-components/heroSlider/HeroSlider\")\n ),\n UserFeedback: dynamic(\n () => import(\"@Components/contentful-components/user-feedback/UserFeedBack\")\n ),\n UserReviews: dynamic(\n () => import(\"@Components/contentful-components/user-reviews/UserReviews\")\n ),\n SalesPropositions: dynamic(\n () =>\n import(\n \"@Components/contentful-components/uniqueSalesPropositions/UniqueSalesPropositions\"\n )\n ),\n CarouselProductList: dynamic(\n () =>\n import(\"@Components/contentful-components/promo-carousel/PromoCarousel\")\n ),\n Educational: dynamic(\n () => import(\"@Components/contentful-components/educational/Educational\")\n ),\n KnowYourCuts: dynamic(\n () =>\n import(\"@Components/contentful-components/know-your-cuts/KnowYourCuts\")\n ),\n StoriesOfWildfork: dynamic(\n () => import(\"@Components/storiesOfWildfork/StoriesOfWildfork\")\n ),\n MediaImage: dynamic(\n () => import(\"@Components/contentful-components/media-image/MediaImage\")\n ),\n\n RichTextContent: dynamic(\n () => import(\"@Components/contentful-components/rich-text/RichTextContent\")\n ),\n\n MembershipTable: dynamic(\n () =>\n import(\n \"@Components/contentful-components/membership-table/MembershipTable\"\n )\n ),\n\n MediaEmbedYoutubeVideo: dynamic(\n () =>\n import(\n \"@Components/contentful-components/media-embed-youtube-video/MediaEmbedYoutubeVideo\"\n )\n ),\n\n SectionTitleIconDescription: dynamic(\n () =>\n import(\n \"@Components/contentful-components/section-title-icon-description/SectionTitleIconDescription\"\n )\n ),\n\n SectionTextImage: dynamic(\n () =>\n import(\n \"@Components/contentful-components/section-text-image/SectionTextImage\"\n )\n ),\n\n SectionDivider: dynamic(\n () =>\n import(\"@Components/contentful-components/section-divider/SectionDivider\")\n ),\n};\n\nexport default componentMapping;\n","import logger from \"@Utils/Logger\";\nimport AppLayout from \"@wff/components/layout/AppLayout\";\nimport { useBreadcrumb } from \"@wff/hooks/useBreadcrumb\";\nimport componentMapping from \"../ComponentMapping\";\nimport { getCmsPageBySlug } from \"../Contentful.helper\";\n\ninterface cmsPageProps {\n children?: React.ReactNode;\n pageModel: any;\n pageTitle?: string;\n productSKU?: string;\n pageDescription?: string;\n}\n\ninterface pageModelTypes {\n locale?: string;\n slug?: string;\n productId?: string;\n resourceName?: string;\n}\n\ninterface getCMSPageModelOptions {\n keepOriginalSlug?: boolean;\n}\n\n/**\n * Component - CMS Page\n * @returns\n */\nconst CmsPage = (props: cmsPageProps) => {\n const {\n pageModel,\n pageTitle = \"\",\n productSKU,\n pageDescription = \"\",\n children,\n } = props;\n const contents = pageModel?.pageContent?.templates?.items ?? [];\n\n let templates;\n if (contents.length > 0) {\n let Comp;\n templates = contents.map((content: any, index: number) => {\n const contentKey = content?.content_type;\n // eslint-disable-next-line security/detect-object-injection\n Comp = componentMapping[contentKey];\n if (Comp) {\n return ;\n } else {\n return null;\n }\n });\n }\n // set the Root label for Breadcrumbs in all pages\n useBreadcrumb({\n homeSlug: {\n title: pageModel?.siteGlobal?.homeSlugLabel\n ? pageModel?.siteGlobal?.homeSlugLabel\n : \"Home\",\n link: \"/\",\n },\n });\n\n return (\n <>\n \n {templates}\n {children}\n \n \n );\n};\n\nexport const getCMSPageModel = async (\n query: string,\n payload: pageModelTypes,\n options?: getCMSPageModelOptions\n) => {\n const { locale = \"en-US\", slug } = payload;\n const { keepOriginalSlug = false } = options || {};\n let slugStr = slug;\n\n const country = (locale.split(\"-\")?.[1] ?? \"us\").toLocaleLowerCase();\n\n if (slug && !keepOriginalSlug) {\n slugStr = `wildfork-${country}-${slug}`;\n }\n\n const reqPayload = {\n ...payload,\n slug: slugStr,\n country,\n };\n\n logger.info(\"CmsPage.tsx getCMSPageModel()\", payload);\n\n return await getCmsPageBySlug(query, reqPayload);\n};\n\nexport default CmsPage;\n","export enum PRODUCTS_FILTER_ACTIONS {\n TOGGLE_NAVIGATION = \"TOGGLE_NAVIGATION\",\n SET_ACTIVE_DROPDOWN_FILTER = \"SET_ACTIVE_DROPDOWN_FILTER\",\n TOGGLE_MOBILE_DRAWER_MENU = \"TOGGLE_MOBILE_DRAWER_MENU\",\n SET_SORT_BY = \"SET_SORT_BY\",\n SET_FILTER = \"SET_FILTER\",\n SET_FILTER_VALUES = \"SET_FILTER_VALUES\",\n SET_SELECTED_NAVIGATION = \"SET_SELECTED_NAVIGATION\",\n RESET_FILTER = \"RESET_FILTER\",\n}\n","import { PRODUCTS_LISTING_FILTER_INITIAL_STATE } from \"../constants\";\nimport { PRODUCTS_FILTER_ACTIONS } from \"../enums\";\nimport { IProductsFilterState } from \"../types\";\nimport { getCountOfSelectedFilterValues } from \"../utils\";\n\nexport type ReducerAction = {\n type: T;\n payload: P;\n};\n\nexport type CollectionFilterActions =\n | ReducerAction\n | ReducerAction<\n PRODUCTS_FILTER_ACTIONS.SET_ACTIVE_DROPDOWN_FILTER,\n number | undefined\n >\n | ReducerAction\n | ReducerAction\n | ReducerAction\n | ReducerAction<\n PRODUCTS_FILTER_ACTIONS.SET_FILTER,\n Partial\n >\n | ReducerAction<\n PRODUCTS_FILTER_ACTIONS.SET_FILTER_VALUES,\n { category: string; value: string }\n >\n | ReducerAction;\n\nexport const productsFilterReducer = (\n state: IProductsFilterState,\n action: CollectionFilterActions\n): IProductsFilterState => {\n switch (action.type) {\n case PRODUCTS_FILTER_ACTIONS.TOGGLE_NAVIGATION:\n return {\n ...state,\n activeDropdownFilter: undefined,\n isNavigationOpen: !state.isNavigationOpen,\n };\n case PRODUCTS_FILTER_ACTIONS.SET_ACTIVE_DROPDOWN_FILTER:\n return {\n ...state,\n isNavigationOpen: false,\n activeDropdownFilter: action.payload,\n };\n case PRODUCTS_FILTER_ACTIONS.TOGGLE_MOBILE_DRAWER_MENU:\n return {\n ...state,\n showMobileDrawerMenu: !state.showMobileDrawerMenu,\n };\n case PRODUCTS_FILTER_ACTIONS.SET_SORT_BY:\n return {\n ...state,\n selectedSortBy: action.payload,\n };\n case PRODUCTS_FILTER_ACTIONS.SET_FILTER: {\n return {\n ...state,\n ...action.payload,\n };\n }\n case PRODUCTS_FILTER_ACTIONS.SET_FILTER_VALUES:\n const { category, value } = action.payload;\n\n if (typeof category !== \"string\") return state;\n\n const selectedFilterValues = {\n ...state.selectedFilterValues,\n };\n if (selectedFilterValues?.price?.[0]?.includes(\"custom\")) {\n selectedFilterValues[category] = [value];\n } else if (selectedFilterValues?.[category]?.includes(value)) {\n selectedFilterValues[category] = selectedFilterValues[category].filter(\n (filter) => filter !== value\n );\n } else {\n if (!selectedFilterValues[category]) {\n selectedFilterValues[category] = [];\n }\n selectedFilterValues[category] = [\n ...selectedFilterValues[category],\n value,\n ];\n }\n\n Object.keys(selectedFilterValues).forEach((category) => {\n if (selectedFilterValues[category].length === 0) {\n delete selectedFilterValues[category];\n }\n });\n\n return {\n ...state,\n selectedFilterValues,\n countSelectedFilterValues:\n getCountOfSelectedFilterValues(selectedFilterValues),\n };\n case PRODUCTS_FILTER_ACTIONS.SET_SELECTED_NAVIGATION:\n return {\n ...state,\n selectedNavigation: action.payload,\n };\n case PRODUCTS_FILTER_ACTIONS.RESET_FILTER:\n return PRODUCTS_LISTING_FILTER_INITIAL_STATE;\n default:\n return state;\n }\n};\n\nexport const actionCreators = {\n toggleNavigation: (): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.TOGGLE_NAVIGATION,\n payload: undefined,\n }),\n setActiveDropdownFilter: (\n activeDropdownFilter: number | undefined\n ): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.SET_ACTIVE_DROPDOWN_FILTER,\n payload: activeDropdownFilter,\n }),\n toggleMobileDrawerMenu: (): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.TOGGLE_MOBILE_DRAWER_MENU,\n payload: undefined,\n }),\n setSortBy: (sortBy: string | undefined): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.SET_SORT_BY,\n payload: sortBy,\n }),\n setFilter: (\n filter: Partial = {}\n ): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.SET_FILTER,\n payload: filter,\n }),\n setFilterValues: (filter: {\n category: string;\n value: string;\n }): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.SET_FILTER_VALUES,\n payload: filter,\n }),\n setSelectedNavigation: (\n selectedNavigation: string\n ): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.SET_SELECTED_NAVIGATION,\n payload: selectedNavigation,\n }),\n resetFilter: (): CollectionFilterActions => ({\n type: PRODUCTS_FILTER_ACTIONS.RESET_FILTER,\n payload: undefined,\n }),\n};\n","import { useReducer } from \"react\";\nimport { contextFactory } from \"@wff/context/helpers/contextFactory\";\nimport { PRODUCTS_LISTING_FILTER_INITIAL_STATE } from \"../constants\";\nimport { IProductsFilterState } from \"../types\";\nimport { actionCreators, productsFilterReducer } from \"./productsFilterReducer\";\n\ninterface ProductsFilterProps extends IProductsFilterState {\n query?: string;\n dispatch: React.Dispatch;\n resetFilter: () => void;\n setActiveDropdownFilter: (activeDropdownFilter: number | undefined) => void;\n setFilter: (filter: Partial) => void;\n setFilterValues: (filter: { category: string; value: string }) => void;\n setSelectedNavigation: (selectedNavigation: string) => void;\n setSortBy: (sortBy: string | undefined) => void;\n toggleMobileDrawerMenu: () => void;\n toggleNavigation: () => void;\n}\n\nconst [useProductsFilter, ProductsFilterContext] =\n contextFactory();\n\nexport { useProductsFilter, ProductsFilterContext };\n\ninterface FilterProviderProps {\n children: React.ReactNode;\n}\n\nexport const ProductsFilterProvider = (props: FilterProviderProps) => {\n const [state, dispatch] = useReducer(productsFilterReducer, {\n ...PRODUCTS_LISTING_FILTER_INITIAL_STATE,\n });\n\n const toggleNavigation = () => {\n dispatch(actionCreators.toggleNavigation());\n };\n\n const setActiveDropdownFilter = (filter: number | undefined) => {\n dispatch(actionCreators.setActiveDropdownFilter(filter));\n };\n\n const toggleMobileDrawerMenu = () => {\n dispatch(actionCreators.toggleMobileDrawerMenu());\n };\n\n const setFilter = (filter: Partial) => {\n dispatch(actionCreators.setFilter(filter));\n };\n\n const setFilterValues = (filter: { category: string; value: string }) => {\n dispatch(actionCreators.setFilterValues(filter));\n };\n\n const setSortBy = (sortBy: string | undefined) => {\n dispatch(actionCreators.setSortBy(sortBy));\n };\n\n const setSelectedNavigation = (selectedNavigation: string) => {\n dispatch(actionCreators.setSelectedNavigation(selectedNavigation));\n };\n\n const resetFilter = () => {\n dispatch(actionCreators.resetFilter());\n };\n\n return (\n \n {props.children}\n \n );\n};\n","import { useRouter } from \"next/router\";\nimport { IProductsSearchCriteria } from \"./types\";\nimport { decodeProductsSearchCriteria } from \"./utils\";\n\nexport const useProductsSearchCriteriaByURL = (): IProductsSearchCriteria => {\n const {\n query: { criteria },\n } = useRouter();\n\n if (criteria) {\n return decodeProductsSearchCriteria(String(criteria));\n }\n\n return {};\n};\n","import { useTranslation } from \"next-i18next\";\nimport { useState } from \"react\";\nimport classes from \"./StickyFacetsMenu.module.scss\";\n\nconst PricingFilter = ({ onSelectFilter, selectedValue }: any) => {\n const { t } = useTranslation(\"common\");\n const prevPrices = selectedValue && selectedValue[0]?.includes(\"custom\");\n const [prevLowPrice, prevHighPrice] =\n (prevPrices && selectedValue[0]?.split(\"custom\")) || [];\n\n const [minPrice, setMinPrice] = useState(prevLowPrice);\n const [maxPrice, setMaxPrice] = useState(prevHighPrice);\n const [errorMsg, setErrorMsg] = useState(\"\");\n\n const handlePriceFilter = () => {\n if (Number(maxPrice) < Number(minPrice) && Number(maxPrice) > 0) {\n setErrorMsg(`${t(\"products.error_message\")}`);\n } else if (!maxPrice && !minPrice && prevPrices) {\n setErrorMsg(\"\");\n onSelectFilter(\"price\", \"custom\");\n } else {\n setErrorMsg(\"\");\n onSelectFilter(\"price\", `${minPrice || \"\"}custom${maxPrice || \"\"}`);\n }\n };\n\n const onKeyPressHandler = (key: string) => {\n if ((minPrice || maxPrice || prevPrices) && key === \"Enter\") {\n handlePriceFilter();\n }\n };\n\n const handlePriceChange = (price: string, isMinimum: boolean) => {\n if (isNaN(Number(price))) {\n return;\n }\n return isMinimum ? setMinPrice(price) : setMaxPrice(price);\n };\n\n return (\n
\n
\n $\n handlePriceChange(e.target.value, true)}\n data-testid=\"min-amount\"\n maxLength={5}\n min={0}\n placeholder=\"Min\"\n value={minPrice}\n onKeyDown={(e) => onKeyPressHandler(e.key)}\n className={classes[\"facets-menu-price_input-box\"]}\n >\n
\n $\n handlePriceChange(e.target.value, false)}\n data-testid=\"max-amount\"\n maxLength={5}\n min={0}\n placeholder=\"Max\"\n value={maxPrice}\n onKeyDown={(e) => onKeyPressHandler(e.key)}\n className={classes[\"facets-menu-price_input-box\"]}\n >\n
\n \n GO\n \n
\n {errorMsg}\n
\n );\n};\n\nexport default PricingFilter;\n","import clsx from \"clsx\";\nimport { useState } from \"react\";\nimport { AccordionDetails, AccordionSummary, Accordion } from \"@mui/material\";\nimport { useRouter } from \"next/router\";\nimport Icon from \"@Components/ui/icon\";\nimport { IFilterItem } from \"@Types/SearchUtils\";\nimport { ISearchSliceInitialState } from \"@Types/search-page\";\nimport { useAppSelector } from \"@wff/store/hooks\";\nimport {\n MOBILE_DRAWER_MENU_TEST_ID,\n CLOSE_DRAWER_BUTTON_TEST_ID,\n} from \"../constants\";\nimport { useProductsFilter } from \"../context/ProductsFilterContext\";\nimport { useProductsSearchCriteriaByURL } from \"../hooks\";\nimport { IProductsListingPageContent } from \"../types\";\nimport {\n changeProductsSearchCriteriaInURL,\n updateProductsSearchCriteriaBySelectedFilter,\n} from \"../utils\";\nimport PricingFilter from \"./PricingFilter\";\nimport classes from \"./StickyFacetsMenu.module.scss\";\n\ninterface ToolbarFacetsMenuProps extends IProductsListingPageContent {}\n\nexport const StickyFacetsMenu = (props: ToolbarFacetsMenuProps) => {\n const { showMobileDrawerMenu, toggleMobileDrawerMenu } = useProductsFilter();\n\n const { availableFilters }: ISearchSliceInitialState = useAppSelector(\n (state) => state.search\n );\n const MenuItemFilters =\n availableFilters &&\n Array.isArray(availableFilters) &&\n availableFilters?.filter((obj: any) => obj?.type);\n\n const onClose = () => {\n toggleMobileDrawerMenu();\n };\n\n const renderItems = () => {\n if (MenuItemFilters)\n return MenuItemFilters?.map((item: any, index: number) => {\n return ;\n });\n };\n\n return (\n \n \n
\n {props[\"plp.page.filter\"]}\n \n \n \n
\n
{renderItems()}
\n \n \n );\n};\n\ninterface MenuItemProps {\n index: number;\n item: { name: string; type: string };\n}\nconst singleSelectFacet = [\"Thickness\", \"Grade\", \"Price\"];\n\nexport const MenuItem = (props: MenuItemProps) => {\n const { index, item } = props;\n const {\n setSortBy,\n selectedSortBy,\n setFilterValues,\n activeDropdownFilter,\n selectedFilterValues,\n setActiveDropdownFilter,\n } = useProductsFilter();\n const router = useRouter();\n const searchCriteria = useProductsSearchCriteriaByURL();\n const [showMore, setShowMore] = useState(false);\n // const isActive = activeDropdownFilter === index;\n const isSortingBy = item.name === \"Sort By\";\n\n const isCheckBoxFilter = singleSelectFacet.includes(item.name) ? false : true;\n\n const onClick = () => {\n setActiveDropdownFilter(activeDropdownFilter !== index ? index : undefined);\n };\n\n const isItemChecked = (category: string, item: string) => {\n return isSortingBy\n ? selectedSortBy === item\n : selectedFilterValues?.[category]?.includes(item) ?? false;\n };\n const { availableFilters }: any = useAppSelector((state) => state.search);\n\n const hasRootFilter =\n selectedFilterValues?.[item.type]?.length &&\n availableFilters[1]?.initialFacets?.find(\n (el: any) => el.name === item.name\n );\n\n const currentFilter: any =\n availableFilters && hasRootFilter\n ? hasRootFilter\n : availableFilters?.find((el: any) => el.name === item.name);\n\n const currentItemsList =\n currentFilter?.items?.length > 10 && !showMore\n ? currentFilter?.items.slice(0, 5)\n : currentFilter?.items;\n\n const onSelectFilter = (category: string, value: string) => {\n if (isSortingBy) {\n const sortBy = selectedSortBy !== value ? value : undefined;\n\n setSortBy(sortBy);\n changeProductsSearchCriteriaInURL(router, { ...searchCriteria, sortBy });\n } else {\n const newSearchCriteria = updateProductsSearchCriteriaBySelectedFilter(\n searchCriteria,\n category,\n value,\n isCheckBoxFilter\n );\n\n setFilterValues({ category, value });\n changeProductsSearchCriteriaInURL(router, newSearchCriteria);\n }\n };\n const highlightSelectedFilter =\n selectedFilterValues?.[currentFilter.type]?.[0] === \"custom\"\n ? false\n : selectedFilterValues?.[currentFilter.type]?.length;\n\n return (\n = 1 && index <= 3 ? true : false}\n className={classes[\"accordion-filter\"]}\n >\n \n }\n className={clsx(\n classes[\"search-facet\"],\n highlightSelectedFilter && classes[\"search-facet-active\"]\n )}\n onClick={onClick}\n >\n {item.name}\n \n \n {currentItemsList?.map((item: IFilterItem, subIndex: number) => (\n \n \n onSelectFilter(currentFilter?.type, item.value || \"\")\n }\n checked={isItemChecked(currentFilter?.type, item.value || \"\")}\n />\n \n {item?.name}\n \n \n ))}\n {currentFilter?.items?.length > 10 && (\n setShowMore((toggle) => !toggle)}\n >\n {`Show ${showMore ? \"less\" : \"more\"}`}\n \n )}\n {item.type === \"price\" && (\n \n )}\n \n \n );\n};\n","import clsx from \"clsx\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useRouter } from \"next/router\";\nimport Icon from \"@Components/ui/icon\";\nimport { cartDrawerSelector } from \"@wff/store/cartDrawerSlice\";\nimport { useAppSelector } from \"@wff/store/hooks\";\nimport { useProductsFilter } from \"../context/ProductsFilterContext\";\nimport { IProductsListingPageContent } from \"../types\";\nimport { changeProductsSearchCriteriaInURL } from \"../utils\";\nimport { StickyFacetsMenu } from \"./StickyFacetsMenu\";\nimport classes from \"./StickyToolbar.module.scss\";\n\ninterface ToolbarProps extends IProductsListingPageContent {}\n\nexport const StickyToolbar = (props: ToolbarProps) => {\n const { resetFilter, toggleMobileDrawerMenu, countSelectedFilterValues } =\n useProductsFilter();\n\n const router = useRouter();\n const { isVisible: isNavbarVisible } = useAppSelector(cartDrawerSelector);\n\n const onFilterClick = () => {\n toggleMobileDrawerMenu();\n };\n const isMobile = useMediaQuery(\"(max-width:60em)\");\n const onResetFilters = () => {\n resetFilter();\n changeProductsSearchCriteriaInURL(router, null);\n };\n const showCounter = countSelectedFilterValues > 0;\n const showDesktopFilter = showCounter || !isMobile;\n\n return (\n \n

{props.pageTitle}

\n {!showCounter && isMobile && (\n \n )}\n \n {showDesktopFilter && (\n
\n \n \n {props[\"plp.page.filter\"]}\n {showCounter && isMobile && (\n \n ({countSelectedFilterValues})\n \n )}\n \n {showCounter && (\n \n Clear all filters\n \n )}\n
\n )}\n \n \n \n );\n};\n","import { useTranslation } from \"next-i18next\";\nimport { useEffect, useState, useMemo, useCallback } from \"react\";\nimport { Grid } from \"@mui/material\";\nimport isEqual from \"lodash/isEqual\";\nimport { useRouter } from \"next/router\";\nimport { initialStateAvailableFilters } from \"@Components/search/utils/algoliaData\";\nimport {\n reduceTooltipData,\n formatStickyFilters,\n algoliaToCTTransformer,\n getSearchHitsByCategory,\n} from \"@Components/search/utils/searchUtils\";\nimport Icon from \"@Components/ui/icon\";\nimport ProductTile from \"@Components/ui/productTile/productTile\";\nimport { isCanadianLocale } from \"@Utils/locale\";\nimport { useCustomer } from \"@wff/hooks/useCustomer\";\nimport { useFavorites } from \"@wff/hooks/useFavorites\";\nimport { usePreviousWF } from \"@wff/hooks/useMemoize\";\nimport { useAppSelector, useAppDispatch } from \"@wff/store/hooks\";\nimport { localeSelector } from \"@wff/store/localeSlice\";\nimport {\n setSearchHits,\n setAvailableFilters,\n setSearchProductHits,\n} from \"@wff/store/searchSlice\";\nimport {\n DEFAULT_PAGE,\n PRODUCTS_PER_BATCH,\n PRODUCTS_LISTING_FILTER_INITIAL_STATE,\n} from \"./constants\";\nimport { useProductsFilter } from \"./context/ProductsFilterContext\";\nimport { useProductsSearchCriteriaByURL } from \"./hooks\";\nimport { StickyToolbar } from \"./stickyFilters/StickyToolbar\";\n// import { Toolbar } from \"./toolbar/Toolbar\"; commented for future implementation\nimport { IProductsSearchCriteria, IProductsListingPageContent } from \"./types\";\nimport {\n getCountOfSelectedFilterValues,\n changeProductsSearchCriteriaInURL,\n} from \"./utils\";\n\nimport classes from \"./ProductsListing.module.scss\";\n\nexport const ProductsListingLayout = (props: IProductsListingPageContent) => {\n const router = useRouter();\n const {\n query: { slug: category },\n } = router;\n const appDispatch = useAppDispatch();\n const searchCriteria = useProductsSearchCriteriaByURL();\n const prevCategory = usePreviousWF(category);\n const prevSearchCriteria = usePreviousWF(searchCriteria);\n const { t } = useTranslation(\"common\");\n const { selectedSortBy, selectedFilterValues, resetFilter, setFilter } =\n useProductsFilter();\n const { productHits } = useAppSelector((state) => state.search);\n const [isLoading, setIsLoading] = useState(false);\n const { languageCode } = useAppSelector(localeSelector);\n const CTProducts = useMemo(\n () =>\n props?.products?.items.filter((product) => !!product?.ctproductSku) || [],\n [props]\n );\n const searchProductsByAlgolia = !CTProducts.length;\n const isBrowser: boolean = ((): boolean => typeof window !== \"undefined\")();\n const currentLocale = useAppSelector(localeSelector)?.languageCode;\n const isCanadaUser = isCanadianLocale(currentLocale);\n\n useEffect(() => {\n if (prevCategory !== category) {\n if (searchProductsByAlgolia) {\n const saveSearchResults = (results: any) => {\n const filters = formatStickyFilters(results, category);\n if (!Object.keys(searchCriteria).length) {\n appDispatch(setSearchHits(results?.hits));\n appDispatch(setSearchProductHits(results?.hits));\n }\n\n appDispatch(setAvailableFilters(filters));\n setIsLoading(false);\n };\n\n if (\n !isEqual(\n PRODUCTS_LISTING_FILTER_INITIAL_STATE.selectedFilterValues,\n selectedFilterValues\n ) ||\n !isEqual(\n PRODUCTS_LISTING_FILTER_INITIAL_STATE.selectedSortBy,\n selectedSortBy\n )\n ) {\n resetFilter();\n changeProductsSearchCriteriaInURL(router, null);\n }\n\n setIsLoading(true);\n getSearchHitsByCategory(saveSearchResults, category);\n } else {\n appDispatch(setAvailableFilters(initialStateAvailableFilters));\n }\n }\n }, [\n category,\n searchCriteria,\n prevCategory,\n selectedSortBy,\n selectedFilterValues,\n searchProductsByAlgolia,\n router,\n resetFilter,\n appDispatch,\n ]);\n\n useEffect(() => {\n const { filterBy, sortBy } = searchCriteria;\n const { filterBy: prevFilterBy, sortBy: prevSortBy } =\n (prevSearchCriteria ?? {}) as IProductsSearchCriteria;\n\n if (\n searchProductsByAlgolia &&\n (!isEqual(prevFilterBy, filterBy) || !isEqual(prevSortBy, sortBy))\n ) {\n const saveSearchResults = (results: any) => {\n const filters = formatStickyFilters(results, category);\n appDispatch(setSearchHits(results?.hits));\n appDispatch(setSearchProductHits(results?.hits));\n appDispatch(setAvailableFilters(filters));\n setIsLoading(false);\n };\n\n if (\n !isEqual(selectedFilterValues, filterBy) ||\n !isEqual(selectedSortBy, sortBy)\n ) {\n const countSelectedFilterValues =\n getCountOfSelectedFilterValues(filterBy);\n\n setFilter({\n selectedSortBy: sortBy,\n selectedFilterValues: filterBy,\n countSelectedFilterValues,\n });\n }\n\n setIsLoading(true);\n getSearchHitsByCategory(saveSearchResults, category, searchCriteria);\n }\n }, [\n category,\n searchCriteria,\n prevSearchCriteria,\n selectedSortBy,\n selectedFilterValues,\n searchProductsByAlgolia,\n setFilter,\n appDispatch,\n ]);\n\n const tooltipData = reduceTooltipData(\n props?.[\"products.tooltip.title\"],\n props?.[\"products.tooltip.description\"],\n props?.[\"products.tooltip.example\"]\n );\n const productsShowLimit =\n PRODUCTS_PER_BATCH * (searchCriteria?.page ?? DEFAULT_PAGE);\n const isShowLoadMoreBtn = searchProductsByAlgolia\n ? productHits?.length > productsShowLimit\n : CTProducts?.length > productsShowLimit;\n const productList = (\n searchProductsByAlgolia\n ? algoliaToCTTransformer(productHits, languageCode, tooltipData)\n : CTProducts\n ).slice(0, productsShowLimit);\n\n const loadMoreHandler = () => {\n const { page = DEFAULT_PAGE } = searchCriteria;\n\n changeProductsSearchCriteriaInURL(router, {\n ...searchCriteria,\n page: page + 1,\n });\n };\n\n if (isCanadaUser && isBrowser && isLoading) {\n setTimeout(() => {\n window.scrollTo(0, 0);\n }, 100);\n }\n\n const { favoritesList, getFavoritesList } = useFavorites();\n const { isLoggedIn } = useCustomer();\n\n const getFavoritesListMemo = useCallback(\n async (type) => {\n await getFavoritesList(type);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n useEffect(() => {\n isLoggedIn && getFavoritesListMemo(\"default\");\n }, [getFavoritesListMemo, isLoggedIn]);\n\n return (\n
\n \n {isLoading ? (\n
\n \n
\n ) : (\n \n {productList?.length ? (\n <>\n
\n {productList?.map((item: any, index: number) => (\n \n ))}\n
\n
\n {isShowLoadMoreBtn && (\n \n {props[\"plp.page.btn.LoadMore\"]}{\" \"}\n \n )}\n
\n \n ) : (\n
\n
\n

{t(\"products.no_products.header\")}

\n

{t(\"products.no_products.message\")}

\n
\n
\n )}\n
\n )}\n
\n );\n};\n","import { GetStaticProps } from \"next\";\nimport { useEffect } from \"react\";\nimport { ProductsListingLayout } from \"@Components/products-listing/ProductsListingLayout\";\nimport { ProductsFilterProvider } from \"@Components/products-listing/context/ProductsFilterContext\";\nimport { useProductsSearchCriteriaByURL } from \"@Components/products-listing/hooks\";\nimport { IProductsListingPageContent } from \"@Components/products-listing/types\";\nimport { DY_PAGE_CONTEXT } from \"@Constants/common\";\nimport { STORAGE_KEYS, STORAGE_TYPES } from \"@Constants/storage\";\nimport CmsPage, { getCMSPageModel } from \"@Libs/contentful/components/CmsPage\";\nimport { RESOURCE_NAMES } from \"@Libs/contentful/constants\";\nimport ProductsListingPageQuery, {\n queryPLPPaths,\n} from \"@Libs/contentful/queries/ProductsListingPage\";\nimport { setDYContext } from \"@Libs/dynamic-yield/dynamicYield\";\nimport { makeStaticProps } from \"@Libs/i18n/getStatic\";\nimport { getCtData } from \"@Utils/HomePageHelpers\";\nimport logger from \"@Utils/Logger\";\nimport { getItem } from \"@Utils/browserStorage\";\nimport { getStaticPathsFromSlug } from \"@Utils/contentful\";\nimport { useAppSelector } from \"@wff/store/hooks\";\nimport { localeSelector } from \"@wff/store/localeSlice\";\n\nconst ProductListingPage = ({ pageModel }: any) => {\n const { pageContent = {} } = pageModel;\n const { languageCode } = useAppSelector(localeSelector);\n /**\n * There is no specific property as 'category' in the pageModel.\n * For now, assigned the pageTitle as Category name\n */\n const { pageTitle } = pageContent;\n const searchCriteria = useProductsSearchCriteriaByURL();\n const subCategory = getItem(\n STORAGE_KEYS.DY_PRODUCTS_SEARCH_CRITERIA,\n STORAGE_TYPES.SESSION\n );\n\n //Set 'CATEGORY' DY-PageContext\n useEffect(\n () =>\n setDYContext(\n DY_PAGE_CONTEXT.CATEGORY,\n languageCode,\n subCategory && Object.keys(searchCriteria).length > 0\n ? [pageTitle, subCategory]\n : [pageTitle]\n ),\n [pageTitle, subCategory, searchCriteria, languageCode]\n );\n\n return (\n \n \n \n \n \n );\n};\n\ntype Params = {\n slug: string;\n locale: string;\n};\n\nconst overrideStaticProps: GetStaticProps = async (props) => {\n const { locale, slug } = props as Params;\n\n const pageModel = await getCMSPageModel(\n ProductsListingPageQuery,\n {\n locale,\n slug,\n resourceName: RESOURCE_NAMES.productListingPage,\n },\n {\n keepOriginalSlug: true,\n }\n );\n\n if (pageModel?.pageContent?.products?.items?.length) {\n for (const collection of pageModel?.pageContent.products.items) {\n if (collection?.ctproductSku) {\n collection.ctData = (await getCtData(collection.ctproductSku)) || null;\n }\n }\n }\n\n return {\n props: { pageModel },\n };\n};\n\nexport async function getStaticPaths() {\n try {\n const paths = await getStaticPathsFromSlug(queryPLPPaths);\n\n return {\n paths,\n fallback: false,\n };\n } catch (error) {\n logger.error(\"collection/[slug] getStaticPaths()\", error);\n }\n}\n\nconst getStaticProps = makeStaticProps([\"common\"], overrideStaticProps);\nexport { getStaticProps };\n\nexport default ProductListingPage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"products-listing\":\"ProductsListing_products-listing__UzrVG\",\"products-listing__toolbar\":\"ProductsListing_products-listing__toolbar__Irp1W\",\"products-list-sticky\":\"ProductsListing_products-list-sticky__nQ8Ue\",\"products-list-sticky__toolbar\":\"ProductsListing_products-list-sticky__toolbar__6etzY\",\"loader\":\"ProductsListing_loader__nuqWx\",\"results-wrapper\":\"ProductsListing_results-wrapper__YYYAB\",\"results-sticky-wrapper\":\"ProductsListing_results-sticky-wrapper__qtRue\",\"results-grid\":\"ProductsListing_results-grid__myObM\",\"results-grid-product\":\"ProductsListing_results-grid-product__jVby8\",\"results-grid-article\":\"ProductsListing_results-grid-article__JlLOn\",\"results-loadMore\":\"ProductsListing_results-loadMore__ZUaQ_\",\"results-loadMore-filter\":\"ProductsListing_results-loadMore-filter__iaLmq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"StickyFacetsMenu_root__b7xCK\",\"facets-menu\":\"StickyFacetsMenu_facets-menu__c_0ve\",\"facets-menu--open\":\"StickyFacetsMenu_facets-menu--open__h6vAx\",\"facets-menu__flyout\":\"StickyFacetsMenu_facets-menu__flyout__d1WwD\",\"facets-menu__flyout--open\":\"StickyFacetsMenu_facets-menu__flyout--open__BwfUW\",\"facets-menu__header\":\"StickyFacetsMenu_facets-menu__header__yFVfj\",\"facets-menu__close\":\"StickyFacetsMenu_facets-menu__close__ELtnb\",\"facets-menu__filters\":\"StickyFacetsMenu_facets-menu__filters__4FWI2\",\"facets-menu__show-more\":\"StickyFacetsMenu_facets-menu__show-more__7OnVx\",\"facets-menu-price\":\"StickyFacetsMenu_facets-menu-price__XTxXe\",\"facets-menu-price_input-box\":\"StickyFacetsMenu_facets-menu-price_input-box__0oo63\",\"facets-menu-price_dollar\":\"StickyFacetsMenu_facets-menu-price_dollar__DWMns\",\"facets-menu-price_submit\":\"StickyFacetsMenu_facets-menu-price_submit__dzC0U\",\"facets-menu-price_error\":\"StickyFacetsMenu_facets-menu-price_error__SWnEu\",\"facets-menu__footer\":\"StickyFacetsMenu_facets-menu__footer__JoVeD\",\"facets-menu__view\":\"StickyFacetsMenu_facets-menu__view__POwMV\",\"facets-menu__clear\":\"StickyFacetsMenu_facets-menu__clear__vuz4y\",\"accordion-filter\":\"StickyFacetsMenu_accordion-filter__z36BT\",\"search-facet\":\"StickyFacetsMenu_search-facet__LKDNZ\",\"search-facet-open\":\"StickyFacetsMenu_search-facet-open__GIsvR\",\"search-facet-active\":\"StickyFacetsMenu_search-facet-active__q2PWv\",\"search-facet-details\":\"StickyFacetsMenu_search-facet-details__VvZED\",\"search-facet__toggle\":\"StickyFacetsMenu_search-facet__toggle__regUk\",\"search-facet--open\":\"StickyFacetsMenu_search-facet--open__Ch6mg\",\"search-facet--active\":\"StickyFacetsMenu_search-facet--active__w9kgJ\",\"search-facet__toggle-content\":\"StickyFacetsMenu_search-facet__toggle-content__ghgW2\",\"search-facet__toggle-content--sort\":\"StickyFacetsMenu_search-facet__toggle-content--sort__NStt7\",\"search-facet__toggle-sort-icon\":\"StickyFacetsMenu_search-facet__toggle-sort-icon__1rRWL\",\"search-facet__active-sort\":\"StickyFacetsMenu_search-facet__active-sort__0gxgi\",\"icon\":\"StickyFacetsMenu_icon__Gcssm\",\"search-facet__toggle-icon\":\"StickyFacetsMenu_search-facet__toggle-icon__LqysE\",\"search-facet__refinement\":\"StickyFacetsMenu_search-facet__refinement__yfZ7y\",\"search-facet__sort\":\"StickyFacetsMenu_search-facet__sort__IQYSY\",\"search-facet__input\":\"StickyFacetsMenu_search-facet__input__Yho9f\",\"search-facet__label\":\"StickyFacetsMenu_search-facet__label__iL_7g\",\"search-facet__sort-label\":\"StickyFacetsMenu_search-facet__sort-label__hLieZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"StickyToolbar_root__1BUcP\",\"toolbar\":\"StickyToolbar_toolbar__2k_gz\",\"toolbar--top\":\"StickyToolbar_toolbar--top__zaN9G\",\"toolbar-title\":\"StickyToolbar_toolbar-title__QvuEj\",\"toolbar-header\":\"StickyToolbar_toolbar-header__cbRMd\",\"toolbar-menu\":\"StickyToolbar_toolbar-menu__mJp0x\",\"title\":\"StickyToolbar_title__8zmg3\",\"filter-toggle\":\"StickyToolbar_filter-toggle__HuQEs\",\"filter-toggle--active\":\"StickyToolbar_filter-toggle--active__sPQf6\",\"filter-toggle-count\":\"StickyToolbar_filter-toggle-count__p3qkf\",\"filter-mobile\":\"StickyToolbar_filter-mobile__yeKrd\",\"filter-clear\":\"StickyToolbar_filter-clear__0Q5PM\"};"],"names":["window","__NEXT_P","push","useBreadcrumb","props","homeSlug","collectionSlug","currentSlug","dispatch","useAppDispatch","useEffect","setHomeSlug","setCollectionSlug","setCurrentSlug","TextEditor","dynamic","Banner","HomePageHeroSlider","HeroSlider","UserFeedback","UserReviews","SalesPropositions","CarouselProductList","Educational","KnowYourCuts","StoriesOfWildfork","MediaImage","RichTextContent","MembershipTable","MediaEmbedYoutubeVideo","SectionTitleIconDescription","SectionTextImage","SectionDivider","query","payload","options","locale","slug","keepOriginalSlug","slugStr","country","reqPayload","split","toLocaleLowerCase","logger","getCmsPageBySlug","pageModel","templates","Comp","pageTitle","productSKU","pageDescription","children","contents","pageContent","items","length","map","content","index","contentKey","content_type","componentMapping","title","siteGlobal","homeSlugLabel","link","AppLayout","PRODUCTS_FILTER_ACTIONS","TOGGLE_NAVIGATION","SET_ACTIVE_DROPDOWN_FILTER","TOGGLE_MOBILE_DRAWER_MENU","SET_SORT_BY","SET_FILTER","SET_FILTER_VALUES","SET_SELECTED_NAVIGATION","RESET_FILTER","productsFilterReducer","state","action","type","activeDropdownFilter","undefined","isNavigationOpen","showMobileDrawerMenu","selectedSortBy","selectedFilterValues","category","value","price","includes","filter","Object","keys","forEach","countSelectedFilterValues","getCountOfSelectedFilterValues","selectedNavigation","PRODUCTS_LISTING_FILTER_INITIAL_STATE","actionCreators","sortBy","contextFactory","useProductsFilter","ProductsFilterContext","ProductsFilterProvider","useReducer","Provider","setFilter","resetFilter","setSortBy","setFilterValues","setSelectedNavigation","toggleMobileDrawerMenu","setActiveDropdownFilter","toggleNavigation","useProductsSearchCriteriaByURL","criteria","useRouter","decodeProductsSearchCriteria","String","selectedValue","onSelectFilter","t","useTranslation","prevPrices","prevLowPrice","prevHighPrice","useState","minPrice","setMinPrice","maxPrice","setMaxPrice","errorMsg","setErrorMsg","handlePriceFilter","Number","onKeyPressHandler","key","handlePriceChange","isMinimum","isNaN","div","className","classes","span","input","onChange","e","target","data-testid","maxLength","min","placeholder","onKeyDown","button","onClick","disabled","StickyFacetsMenu","availableFilters","useAppSelector","search","MenuItemFilters","Array","isArray","obj","aside","clsx","MOBILE_DRAWER_MENU_TEST_ID","CLOSE_DRAWER_BUTTON_TEST_ID","Icon","iconName","item","MenuItem","renderItems","singleSelectFacet","currentFilter","router","searchCriteria","showMore","setShowMore","isSortingBy","name","isCheckBoxFilter","isItemChecked","hasRootFilter","initialFacets","find","el","currentItemsList","slice","changeProductsSearchCriteriaInURL","newSearchCriteria","updateProductsSearchCriteriaBySelectedFilter","highlightSelectedFilter","Accordion","elevation","disableGutters","defaultExpanded","AccordionSummary","expandIcon","AccordionDetails","subIndex","label","checked","toggle","PricingFilter","StickyToolbar","isNavbarVisible","cartDrawerSelector","isVisible","onFilterClick","isMobile","useMediaQuery","showCounter","showDesktopFilter","h2","ProductsListingLayout","appDispatch","prevCategory","usePreviousWF","prevSearchCriteria","productHits","isLoading","setIsLoading","languageCode","localeSelector","CTProducts","useMemo","products","product","ctproductSku","searchProductsByAlgolia","currentLocale","isCanadaUser","isCanadianLocale","isEqual","getSearchHitsByCategory","results","filters","formatStickyFilters","setSearchHits","hits","setSearchProductHits","setAvailableFilters","initialStateAvailableFilters","filterBy","prevFilterBy","prevSortBy","tooltipData","reduceTooltipData","productsShowLimit","PRODUCTS_PER_BATCH","page","DEFAULT_PAGE","isShowLoadMoreBtn","productList","algoliaToCTTransformer","setTimeout","scrollTo","useFavorites","favoritesList","getFavoritesList","isLoggedIn","useCustomer","getFavoritesListMemo","useCallback","Grid","ProductTile","isFavorite","isFavoritePage","isPLP","h3","subCategory","getItem","STORAGE_KEYS","STORAGE_TYPES","setDYContext","DY_PAGE_CONTEXT","CmsPage","module","exports"],"sourceRoot":""}